﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Datos.Entidades;
using Logica.Comandos;
using Logica.Comandos.ComandoAdministracionMaquina;


namespace Logica.FabricaLogica
{
    public class FabricaComandoMaquina
    {

        /// <summary>
        /// Crea una maquina con la información recibida como parámetro
        /// </summary>
        /// <param name="maquina">maquina a crear</param>
        /// <returns>Comando para crear la maquina</returns>
        public static Comando CrearComandoCrearMaquina(Entidad maquina)
        {
            return new ComandoCrearMaquina(maquina);
        }

        /// <summary>
        /// Lista las maquinas activas o inactivas con información recibida como parámetro
        /// </summary>
        /// <param name="status">status de la maquina</param>
        /// <returns>lista de amquinas</returns>
        public static Comando CrearComandoListarMaquina(int status)
        {
            return new ComandoListarMaquina(status);
        }


        /// <summary>
        /// Lista las maquinas  
        /// </summary>  
        /// <returns>lista de amquinas</returns>
        public static Comando CrearComandoListarTodasMaquinas()
        {
            return new ComandoListarTodasMaquinas();
        }

        /// <summary>
        /// Busca informacion de una maquina con información recibida como parámetro
        /// </summary>
        /// <param name="idmaquina">id de la maquina</param>
        /// <returns>informacion de la maquina</returns>
        public static Comando CrearComandoBuscarMaquina(int idMaquina)
        {
            return new ComandoBuscarMaquina(idMaquina);
        }

        /// <summary>
        /// Busca informacion de una maquina con información recibida como parámetro
        /// </summary>
        /// <param name="idmaquina">id de la maquina</param>
        /// <returns>informacion de la maquina</returns>
        public static Comando CrearComandoModificarMaquina(Entidad maquina)
        {
            return new ComandoModificarMaquina(maquina);
        }
    }
}
